package com.lottery.material.service.admin.system;

import com.lottery.material.service.base.BaseService;
import com.lottery.material.entity.admin.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

/**
 * Description：用户服务接口
 * Created by 朱正磊 on 2019-03-22 13:14
 */
public interface UserService extends BaseService<User, Integer> {

    /**
     * description：根据用户名查找唯一用户
     * user 朱正磊
     * time 2019-03-22 17:26
     * @param username 用户名
     * @return 返回用户
     */
    User findByUserName(String username);

    /**
     * description：增加或者修改用户
     * user 朱正磊
     * time 2019-03-22 17:26
     * @param user 用户对象
     */
    void saveOrUpdate(User user);

    /**
     * description：给用户分配角色
     * user 朱正磊
     * time 2019-03-22 17:27
     * @param id 用户ID
     * @param roleIds 角色Ids
     */
    void grant(Integer id, String[] roleIds);

    /**
     * description：根据查询条件获取分页
     * user 朱正磊
     * time 2019-03-22 17:28
     * @param searchText 查询条件
     * @param pageRequest 分页请求对象
     * @return 返回分页对象
     */
    Page<User> findAllByLike(String searchText, PageRequest pageRequest);

    /**
     * description：修改用户密码
     * user 朱正磊
     * time 2019-03-22 17:31
     * @param user 用户对象
     * @param oldPassword 原始密码
     * @param password1 新密码
     * @param password2 确认密码
     */
    void updatePwd(User user, String oldPassword, String password1, String password2);

}
